function getCookie(name) {
    var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : undefined;
}


// TODO 获取当前页面的点赞数目
// function getLikeCount(action){
//     var count = parseInt($("#likes").text())
//     if (action == "add"){
//
//         $("#likes").text(count+1)
//     }else {
//         $("#likes").text(count-1)
//     }
// }


$(function(){

    // 页面一加载就刷新评论数
    updateCommentCount()

    // 打开登录框
    $('.comment_form_logout').click(function () {
        $('.login_form_con').show();
    })

    // TODO 收藏
    $(".collection").click(function () {

        // 获取当前的新闻ID
        var news_id = $(".collection").attr('data-newid');
        var params = {
            "news_id": news_id,
            "action": "collect"
        }
        $.ajax({
            url: "/news/news_collect",
            method: "POST",
            contentType: "application/json",
            data: JSON.stringify(params),
            dataType: "json",
            headers: {
                "X-CSRFToken": getCookie("csrf_token")
            },
            success: function (ret) {
                if (ret.errno == "0"){
                    // 服务器返回成功后。点击收藏按钮后
                    $(".collection").hide()
                    $(".collected").show()
                }else {
                    alert(ret.errmsg)
                }
            }
        })
       
    })

    // TODO 取消收藏
    $(".collected").click(function () {
        // 获取当前的新闻ID
        var news_id = $(".collected").attr('data-newid');
        var params = {
            "news_id": news_id,
            "action": "cancel_collect"
        }
        $.ajax({
            url: "/news/news_collect",
            method: "POST",
            contentType: "application/json",
            data: JSON.stringify(params),
            dataType: "json",
            headers: {
                "X-CSRFToken": getCookie("csrf_token")
            },
            success: function (ret) {
                if (ret.errno == "0"){
                    // 服务器返回成功后。点击收藏按钮后
                    $(".collection").show()
                    $(".collected").hide()
                }else {
                    alert(ret.errmsg)
                }
            }
        })
     
    })

        // TODO 评论提交
    $(".comment_form").submit(function (e) {
        e.preventDefault();

        //完成评论提交
        // 准备数据。
        var comment = $(".comment_input").val()
        var news_id = $(".comment_form").attr("data-newsid")

        var params = {
            comment: comment,
            news_id: news_id
        }
        $.ajax({
            url: "/news/news_comment",
            method: "POST",
            contentType: "application/json",
            data: JSON.stringify(params),
            dataType: "json",
            headers: {
            "X-CSRFToken": getCookie("csrf_token")
        },
            success:function (ret) {
                // 判断成功后
                if (ret.errno==0){
                    // 把内容填充进去
                    var comment = ret.comment
                    // 拼接内容
                    var comment_html = ''
                    comment_html += '<div class="comment_list">'
                    comment_html += '<div class="person_pic fl">'
                    if (comment.user.avatar_url) {
                        comment_html += '<img src="' + comment.user.avatar_url + '" alt="用户图标">'
                    }else {
                    comment_html += '<img src="../../static/news/images/person01.png" alt="用户图标">'
                    }
                    comment_html += '</div>'
                    comment_html += '<div class="user_name fl">' + comment.user.nick_name + '</div>'
                    comment_html += '<div class="comment_text fl">'
                    comment_html += comment.content
                    comment_html += '</div>'
                    comment_html += '<div class="comment_time fl">' + comment.create_time + '</div>'

                    comment_html += '<a href="javascript:;" class="comment_up fr" data-commentid="' + comment.id + '" data-newsid="' + comment.news_id + '">赞</a>'
                    comment_html += '<a href="javascript:;" class="comment_reply fr">回复</a>'
                    comment_html += '<form class="reply_form fl" data-commentid="' + comment.id + '" data-newsid="' + news_id + '">'
                    comment_html += '<textarea class="reply_input"></textarea>'
                    comment_html += '<input type="button" value="回复" class="reply_sub fr">'
                    comment_html += '<input type="reset" name="" value="取消" class="reply_cancel fr">'
                    comment_html += '</form>'

                    comment_html += '</div>'
                    $(".comment_list_con").prepend(comment_html)

                    // 拼接完后
                    // 让comment_sub 失去焦点
                    $('.comment_sub').blur();
                    // 清空输入框内容
                    $(".comment_input").val("")
                    // 更新页面的目的更新页数  通过刷新从服务器端获取的数据
                    // location.reload()
                    // 调用下面的方法更新评论的条数
                    updateCommentCount()

                }else {
                    alert(ret.errmsg)
                }
                
            }
        })

    })

    $('.comment_list_con').delegate('a,input','click',function(){

        var sHandler = $(this).prop('class');

        if(sHandler.indexOf('comment_reply')>=0)
        {
            $(this).next().toggle();
        }

        if(sHandler.indexOf('reply_cancel')>=0)
        {
            $(this).parent().toggle();
        }

        if(sHandler.indexOf('comment_up')>=0)
        {
            var $this = $(this);
            // TODO　默认点赞按钮的行为为 add
            var action = "add"

            if(sHandler.indexOf('has_comment_up')>=0)
            {
                // 如果由点赞状态，就把action设置为remove
                action = "remove"
            }

            // 准备数据
            var comment_id = $(this).attr("data-commentid")
            var news_id = $(this).attr("data-newsid")

            var params = {
                comment_id: comment_id,
                news_id : news_id,
                action: action
            }

            $.ajax({

                url: "/news/comment_like",
                method: "POST",
                contentType: "application/json",
                data: JSON.stringify(params),
                dataType: "json",
                headers: {
                    "X-CSRFToken": getCookie("csrf_token")
                },
                success: function (ret) {
                    if (ret.errno == 0) {
                        //成功返回
                        var like_count = $this.attr('data-likecount')
                        // 如果当前该评论已经是点赞状态，再次点击会进行到此代码块内，代表要取消点赞
                        if (action == "add") {
                            $this.addClass('has_comment_up')
                            like_count = parseInt(like_count) + 1
                        }
                        else {
                            $this.removeClass('has_comment_up')
                            like_count = parseInt(like_count) - 1
                        }

                        // 更新点赞数据
                        $this.attr('data-likecount', like_count)
                        $this.html(like_count)

                    }else if (ret.errno == "4101") {
                        $('.login_form_con').show();
                    } else {
                        alert(ret.errmsg)
                    }
                }
            })
        }

        if(sHandler.indexOf('reply_sub')>=0)
        {
            // alert('回复评论')
            // TODO 提交评论的评论
            // 准备参数
            var $this = $(this)
            var news_id = $this.parent().attr('data-newsid')
            var parent_id = $this.parent().attr('data-commentid')
            var comment = $this.prev().val()

            if (!comment) {
                alert('请输入评论内容')
                return
            }
            var params = {
                "news_id": news_id,
                "comment": comment,
                "parent_id": parent_id
            }
            $.ajax({
                url: "/news/news_comment",
                type: "post",
                contentType: "application/json",
                headers: {
                    "X-CSRFToken": getCookie("csrf_token")
                },
                data: JSON.stringify(params),
                success: function (ret) {
                    if (ret.errno == "0") {
                        var comment = ret.comment
                        // 拼接内容
                        var comment_html = ""
                        comment_html += '<div class="comment_list">'
                        comment_html += '<div class="person_pic fl">'
                        if (comment.user.avatar_url) {
                            comment_html += '<img src="' + comment.user.avatar_url + '" alt="用户图标">'
                        }else {
                            comment_html += '<img src="../../static/news/images/person01.png" alt="用户图标">'
                        }
                        comment_html += '</div>'
                        comment_html += '<div class="user_name fl">' + comment.user.nick_name + '</div>'
                        comment_html += '<div class="comment_text fl">'
                        comment_html += comment.content
                        comment_html += '</div>'
                        comment_html += '<div class="reply_text_con fl">'
                        comment_html += '<div class="user_name2">' + comment.parent.user.nick_name + '</div>'
                        comment_html += '<div class="reply_text">'
                        comment_html += comment.parent.content
                        comment_html += '</div>'
                        comment_html += '</div>'
                        comment_html += '<div class="comment_time fl">' + comment.create_time + '</div>'

                        comment_html += '<a href="javascript:;" class="comment_up fr" data-commentid="' + comment.id + '" data-newsid="' + comment.news_id + '">赞</a>'
                        comment_html += '<a href="javascript:;" class="comment_reply fr">回复</a>'
                        comment_html += '<form class="reply_form fl" data-commentid="' + comment.id + '" data-newsid="' + news_id + '">'
                        comment_html += '<textarea class="reply_input"></textarea>'
                        comment_html += '<input type="button" value="回复" class="reply_sub fr">'
                        comment_html += '<input type="reset" name="" value="取消" class="reply_cancel fr">'
                        comment_html += '</form>'

                        comment_html += '</div>'
                        $(".comment_list_con").prepend(comment_html)
                        // 请空输入框
                        $this.prev().val('')
                        // 关闭
                        $this.parent().hide()
                        // 更新页面的目的更新页数  通过刷新从服务器端获取的数据
                        // location.reload()
                        // 调用下面的方法更新评论的条数
                        updateCommentCount()
                    }else {
                        alert(ret.errmsg)
                    }
                }
            })

        }
    })

        // TODO 关注当前新闻作者
    $(".focus").click(function () {
        // 点击后，先把当前的隐藏
        $(this).hide()
        $(this).siblings().show()
    })

    // TODO 取消关注当前新闻作者
    $(".focused").click(function () {
        // 点击后，先把当前的隐藏
        $(this).hide()
        $(this).siblings().show()
    })

})


// 更新评论条数  该方法要写在外面
function updateCommentCount() {
    var length = $(".comment_list").length
    $(".comment_count").html(length + "条评论")
}